Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Modules with dagger 2 #8

Open
wants to merge 5 commits into
base: dev
Choose a base branch
from
Open

Modules with dagger 2 #8

wants to merge 5 commits into from

Conversation

dmersiyanov
Copy link
Owner

No description provided.

// @JvmStatic
// @Provides
// @Singleton
// fun provideSharedPreferences(context: Context): SharedPreferences =
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Закоменченный код лучше не добавлять в гит, это засоряет историю. Нужно либо выпилить сейчас, либо оставить провайдинг.

// abstract fun getOnBoardingRepo(onBoardingRepoImpl: OnBoardingRepoImpl): OnBoardingRepo
//
// @IntoMap
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

То же самое: Закоменченный код лучше не добавлять в гит, это засоряет историю. Нужно либо выпилить сейчас, либо оставить провайдинг.

# public *;
#}

# Uncomment this to preserve the line number information for
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Эти файлы можно удалить, тут только закоменченный код, в текущем варианте он бесполезен, только засоряет историю.

@@ -48,12 +45,19 @@ abstract class BaseActivity: AppCompatActivity(), SubscriptionsHolder {
}
}

/** Для использования в feature модулях */
private fun initLayoutFromConstructor() {
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Плохо, когда у тебя есть несколько вариантов провайдинга чего-то в одном базовом классе. Класс становится больше и потом разобраться сложнее намного что происходит. В данном случае лучше всего оставить один вариант указания макета, второй убрать, либо делать на несколько базовых классов.

@@ -29,7 +27,7 @@ abstract class BaseFragment: Fragment() {

protected abstract fun initUx()
protected abstract fun initUi()
open fun showProgress(show: Boolean) = progress?.visible(show)
// open fun showProgress(show: Boolean) = progress?.visible(show)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Лучше удалить, если не нужна

class OnBoardingViewModel @Inject constructor(
application: Application,
private val getOnboardingVisibilityInteractor: GetOnboardingVisibilityInteractor,
private val onBoardingRepo: OnBoardingRepo
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Тот же самый коммент про сокращение названий - лучше так не делать

import javax.inject.Inject

class OnBoardingViewModel @Inject constructor(
application: Application,
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Лучше не использовать контекст во вьюмоделях, потому что тестировать будет потом это проблематично.
Показывать сообщения лучше либо через какой-то хелпер класс, либо напрямую через View. Тот же снекбар показать через ApplicationContext невозможно будет

@@ -8,7 +8,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="@dimen/small_margin"
android:background="@color/white" />
android:background="@android:color/white" />
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

лучше использовать свои собственные цвета, потому что некоторые устройства меняют дефолтные цвета, и на каком-нибудь Самсунге цвет будет не тот, который задуман дизайнером

api fragmentKtx

// Dagger 2
api dagger2.core
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Не очень понятно зачем тут все делать через api. Надо бы пройтись по ним и поправить. https://medium.com/mindorks/implementation-vs-api-in-gradle-3-0-494c817a6fa

@@ -1 +1 @@
include ':app', ':domain'
include ':app', ':domain', ':features:feature_onboarding', ':base:core'
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Опасно делать такой core модуль, потому что туда можно будет запихать всё что угодно. Лучше поделить его на несколько модулей поменьше. Вроде uicore, domaincore, networkcore и т.д. Либо просто положить эти утилиты в network, domain, ui если не планируется разбиения на более мелкие модули

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants